package javaSenior.threadExer;

/**
 * @author Lenl
 * @version v1.0
 * @create 2021-06-02 20:54
 * @description 窗口卖票
 * 总票数100张 使用Thread存在线程安全问题待解决。
 */
public class WindowTest {
    public static void main(String[] args) {

        Window w1=new Window();
        Window w2=new Window();
        Window w3=new Window();
        w1.setPriority(1);
        w1.setName("窗口1");
        w2.setName("窗口2");
        w3.setName("窗口3");
        w1.start();
        w2.start();
        w3.start();
    }
}

class Window extends Thread{
    private static int ticket=10000;
    private static Object obj=new Object();

    @Override
    public void run() {
        while(true){
        //继承的不能用this，不然会是三个对象
        //synchronized(obj){
        //可以用这个类
        synchronized(Window.class){

            if(ticket>0){
                System.out.println(getName()+":卖票，票号为："+ticket);
                ticket--;
            }else{
                break;
            }
        }
    }
    }
}